package com.z001.snack.common.module.support.codegenerator.domain.req;

import com.z001.snack.common.module.support.codegenerator.domain.model.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 代码生成 配置信息表单
 *
 * @Author 1024创新实验室-主任: 卓大
 * @Date 2022-06-29 20:23:46
 * @Wechat zhuoda1024
 * @Email lab1024@163.com
 * @Copyright 1024创新实验室 （ https://1024lab.net ）
 */

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CodeGeneratorConfigForm {


    /**
     * 表名
     */
    @NotBlank(message = "表名 不能为空")
    private String tableName;



    /**
     * 基础信息
     */
    @Valid
    @NotNull(message = "基础信息不能为空")
    private CodeBasic basic;


    /**
     * 字段信息
     */
    @Valid
    @NotNull(message = "字段信息不能为空")
    private List<CodeField> fields;

    /**
     * 增加、修改 信息
     */
    @Valid
    @NotNull(message = "增加、修改 信息 不能为空")
    private CodeInsertAndUpdate insertAndUpdate;

    /**
     * 删除 信息
     */
    @Valid
    @NotNull(message = "删除 信息 不能为空")
    private CodeDelete deleteInfo;

    /**
     * 查询字段
     */
    @Valid
    private List<CodeQueryField> queryFields;


    /**
     * 列表字段
     */
    @Valid
    private List<CodeTableField> tableFields;

}
